package com.css.fxfzfxqh.modules.buildings.definitiveEvaluation.economicLossDE.service;

import com.css.fxfzfxqh.modules.buildingKilometerGrid.exceptions.BizException;
import com.css.fxfzfxqh.modules.buildingKilometerGrid.exceptions.StrategyFactoryException;
import com.css.fxfzfxqh.modules.buildings.calculationTasks.entity.CalculationTasks;
import com.css.fxfzfxqh.modules.buildings.definitiveEvaluation.casualtiesDE.entity.Statistics;
import com.css.fxfzfxqh.modules.buildings.definitiveEvaluation.economicLossDE.entity.EconomicLossED;
import com.css.fxfzfxqh.modules.buildings.definitiveEvaluation.economicLossDE.entity.EconomicLossEDCalculation;
import com.css.fxfzfxqh.modules.buildings.definitiveEvaluation.economicLossDE.param.EconomicLossParam;
import com.css.fxfzfxqh.modules.buildings.definitiveEvaluation.resistEarthquakesDE.param.AssessParam;
import com.css.fxfzfxqh.modules.singleIndexRiskZoning.model.entity.FxqhAssessEdQh;
import com.css.fxfzfxqh.modules.singleIndexRiskZoning.model.entity.FxqhAssessEdQhResult;

import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;

public interface EconomicLossEDService {
    void addAssess(EconomicLossED param) throws Exception;

    EconomicLossED findById(String id);

    void upDateAssess(EconomicLossED param);

    String getCode(EconomicLossED param);

    Map<String, Object> getPage(int curPage, int pageSize, AssessParam param);

    void calculation(Map<String,Object> map) throws Exception;

    String reportImport(InputStream inputStream, String type, String id,String code);

    void exportData(HttpServletResponse response, EconomicLossParam param);

    Map<String, Object> queryCalculation(int curPage, int pageSize, String seismicInputMode, String id, String condition);

    void updateCorrectionValue(EconomicLossEDCalculation param);

    List<FxqhAssessEdQhResult> doZoning(FxqhAssessEdQh entity) throws UnsupportedEncodingException, BizException;
    List<FxqhAssessEdQhResult> doZoning(CalculationTasks task) throws UnsupportedEncodingException, BizException, Exception;

    List<Statistics> statistics(String seismicInputMode, String taskId, String condition);
}
